/**
 * Copyright (c) 2016. Visionet and/or its affiliates. All right reserved.
 * VISIONET PROPRIETARY/CONFIDENTIAL.
 */
package com.visionet.jumper.core.domain.search;

import com.visionet.jumper.core.domain.bean.Page;
import com.visionet.jumper.core.domain.search.enumdata.SearchOperator;
import com.visionet.jumper.core.domain.search.filter.JoinTableCondition;
import com.visionet.jumper.core.domain.search.filter.OrCondition;
import com.visionet.jumper.core.domain.search.filter.SearchFilter;
import com.visionet.jumper.core.domain.search.filter.SqlJoinTable;

import java.util.List;

public class SqlSearchable extends Searchable {
	/**
	 * @param tableName 表名
	 * @param alias 别名
	 */
	public SqlSearchable (String tableName, String alias) {
		super.table(tableName, alias);
	}

	@Override
	public SqlSearchable linkConditions(String field1, String field2) {
		super.linkConditions(field1, field2);
		return this;
	}

	@Override
	public SqlSearchable table(String tableName, String alias) {
		super.table(tableName, alias);
		return this;
	}

	@Override
	public SqlSearchable join(String tableName, String alias) {
		super.join(tableName, alias);
		return this;
	}

	@Override
	public SqlSearchable join(Class<?> c, String alias) {
		super.join(c, alias);
		return this;
	}

	@Override
	public SqlSearchable eq(String field, Object obj) {
		super.eq(field, obj);
		return this;
	}

	@Override
	public SqlSearchable eq(String field, Object obj, String type) {
		super.eq(field, obj, type);
		return this;
	}

	@Override
	public SqlSearchable ne(String field, Object obj) {
		super.ne(field, obj);
		return this;
	}

	@Override
	public SqlSearchable ne(String field, Object obj, String type) {
		super.ne(field, obj, type);
		return this;
	}

	@Override
	public SqlSearchable gt(String field, Object obj) {
		super.gt(field, obj);
		return this;
	}

	@Override
	public SqlSearchable gt(String field, Object obj, String type) {
		super.gt(field, obj, type);
		return this;
	}

	@Override
	public SqlSearchable gte(String field, Object obj) {
		super.gte(field, obj);
		return this;
	}

	@Override
	public SqlSearchable gte(String field, Object obj, String type) {
		super.gte(field, obj, type);
		return this;
	}

	@Override
	public SqlSearchable lt(String field, Object obj) {
		super.lt(field, obj);
		return this;
	}

	@Override
	public SqlSearchable lt(String field, Object obj, String type) {
		super.lt(field, obj, type);
		return this;
	}

	@Override
	public SqlSearchable lte(String field, Object obj) {
		super.lte(field, obj);
		return this;
	}

	@Override
	public SqlSearchable lte(String field, Object obj, String type) {
		super.lte(field, obj, type);
		return this;
	}

	@Override
	public SqlSearchable prefixLike(String field, Object obj) {
		super.prefixLike(field, obj);
		return this;
	}

	@Override
	public SqlSearchable prefixLike(String field, Object obj, String type) {
		super.prefixLike(field, obj, type);
		return this;
	}

	@Override
	public SqlSearchable prefixNotLike(String field, Object obj) {
		super.prefixNotLike(field, obj);
		return this;
	}

	@Override
	public SqlSearchable prefixNotLike(String field, Object obj, String type) {
		super.prefixNotLike(field, obj, type);
		return this;
	}

	@Override
	public SqlSearchable suffixLike(String field, Object obj) {
		super.suffixLike(field, obj);
		return this;
	}

	@Override
	public SqlSearchable suffixLike(String field, Object obj, String type) {
		super.suffixLike(field, obj, type);
		return this;
	}

	@Override
	public SqlSearchable suffixNotLike(String field, Object obj) {
		super.suffixNotLike(field, obj);
		return this;
	}

	@Override
	public SqlSearchable suffixNotLike(String field, Object obj, String type) {
		super.suffixNotLike(field, obj, type);
		return this;
	}

	@Override
	public SqlSearchable like(String field, Object obj) {
		super.like(field, obj);
		return this;
	}

	@Override
	public SqlSearchable like(String field, Object obj, String type) {
		super.like(field, obj, type);
		return this;
	}

	@Override
	public SqlSearchable notLike(String field, Object obj) {
		super.notLike(field, obj);
		return this;
	}

	@Override
	public SqlSearchable notLike(String field, Object obj, String type) {
		super.notLike(field, obj, type);
		return this;
	}

	@Override
	public SqlSearchable isNull(String field, Object obj) {
		super.isNull(field, obj);
		return this;
	}

	@Override
	public SqlSearchable isNull(String field, Object obj, String type) {
		super.isNull(field, obj, type);
		return this;
	}

	@Override
	public SqlSearchable isNotNull(String field, Object obj) {
		super.isNotNull(field, obj);
		return this;
	}

	@Override
	public SqlSearchable isNotNull(String field, Object obj, String type) {
		super.isNotNull(field, obj, type);
		return this;
	}

	@Override
	public SqlSearchable in(String field, Object obj) {
		super.in(field, obj);
		return this;
	}

	@Override
	public SqlSearchable in(String field, Object obj, String type) {
		super.in(field, obj, type);
		return this;
	}

	@Override
	public SqlSearchable notIn(String field, Object obj) {
		super.notIn(field, obj);
		return this;
	}

	@Override
	public SqlSearchable notIn(String field, Object obj, String type) {
		super.notIn(field, obj, type);
		return this;
	}

	@Override
	public SqlSearchable condition(String string, List<Object> obj) {
		super.condition(string, obj);
		return this;
	}

	@Override
	public SqlSearchable or(OrCondition orCondition1, OrCondition orCondition2, OrCondition... orConditions) {
		super.or(orCondition1, orCondition2, orConditions);
		return this;
	}

	@Override
	public SqlSearchable havingEq(String field, Object obj) {
		super.havingEq(field, obj);
		return this;
	}

	@Override
	public SqlSearchable havingEq(String field, Object obj, String type) {
		super.havingEq(field, obj, type);
		return this;
	}

	@Override
	public SqlSearchable havingNe(String field, Object obj) {
		super.havingNe(field, obj);
		return this;
	}

	@Override
	public SqlSearchable havingNe(String field, Object obj, String type) {
		super.havingNe(field, obj, type);
		return this;
	}

	@Override
	public SqlSearchable havingGt(String field, Object obj) {
		super.havingGt(field, obj);
		return this;
	}

	@Override
	public SqlSearchable havingGt(String field, Object obj, String type) {
		super.havingGt(field, obj, type);
		return this;
	}

	@Override
	public SqlSearchable havingGte(String field, Object obj) {
		super.havingGte(field, obj);
		return this;
	}

	@Override
	public SqlSearchable havingGte(String field, Object obj, String type) {
		super.havingGte(field, obj, type);
		return this;
	}

	@Override
	public SqlSearchable havingLt(String field, Object obj) {
		super.havingLt(field, obj);
		return this;
	}

	@Override
	public SqlSearchable havingLt(String field, Object obj, String type) {
		super.havingLt(field, obj, type);
		return this;
	}

	@Override
	public SqlSearchable havingLte(String field, Object obj) {
		super.havingLte(field, obj);
		return this;
	}

	@Override
	public SqlSearchable havingLte(String field, Object obj, String type) {
		super.havingLte(field, obj, type);
		return this;
	}

	@Override
	public SqlSearchable havingPrefixLike(String field, Object obj) {
		super.havingPrefixLike(field, obj);
		return this;
	}

	@Override
	public SqlSearchable havingPrefixLike(String field, Object obj, String type) {
		super.havingPrefixLike(field, obj, type);
		return this;
	}

	@Override
	public SqlSearchable havingPrefixNotLike(String field, Object obj) {
		super.havingPrefixNotLike(field, obj);
		return this;
	}

	@Override
	public SqlSearchable havingPrefixNotLike(String field, Object obj, String type) {
		super.havingPrefixNotLike(field, obj, type);
		return this;
	}

	@Override
	public SqlSearchable havingSuffixLike(String field, Object obj) {
		super.havingSuffixLike(field, obj);
		return this;
	}

	@Override
	public SqlSearchable havingSuffixLike(String field, Object obj, String type) {
		super.havingSuffixLike(field, obj, type);
		return this;
	}

	@Override
	public SqlSearchable havingSuffixNotLike(String field, Object obj) {
		super.havingSuffixNotLike(field, obj);
		return this;
	}

	@Override
	public SqlSearchable havingSuffixNotLike(String field, Object obj, String type) {
		super.havingSuffixNotLike(field, obj, type);
		return this;
	}

	@Override
	public SqlSearchable havingLike(String field, Object obj) {
		super.havingLike(field, obj);
		return this;
	}

	@Override
	public SqlSearchable havingLike(String field, Object obj, String type) {
		super.havingLike(field, obj, type);
		return this;
	}

	@Override
	public SqlSearchable havingNotLike(String field, Object obj) {
		super.havingNotLike(field, obj);
		return this;
	}

	@Override
	public SqlSearchable havingNotLike(String field, Object obj, String type) {
		super.havingNotLike(field, obj, type);
		return this;
	}

	@Override
	public SqlSearchable havingIsNull(String field, Object obj) {
		super.havingIsNull(field, obj);
		return this;
	}

	@Override
	public SqlSearchable havingIsNull(String field, Object obj, String type) {
		super.havingIsNull(field, obj, type);
		return this;
	}

	@Override
	public SqlSearchable havingIsNotNull(String field, Object obj) {
		super.havingIsNotNull(field, obj);
		return this;
	}

	@Override
	public SqlSearchable havingIsNotNull(String field, Object obj, String type) {
		super.havingIsNotNull(field, obj, type);
		return this;
	}

	@Override
	public SqlSearchable havingIn(String field, Object obj) {
		super.havingIn(field, obj);
		return this;
	}

	@Override
	public SqlSearchable havingIn(String field, Object obj, String type) {
		super.havingIn(field, obj, type);
		return this;
	}

	@Override
	public SqlSearchable havingNotIn(String field, Object obj) {
		super.havingNotIn(field, obj);
		return this;
	}

	@Override
	public SqlSearchable havingNotIn(String field, Object obj, String type) {
		super.havingNotIn(field, obj, type);
		return this;
	}

	@Override
	public SqlSearchable havingCondition(String string, List<Object> obj) {
		super.havingCondition(string, obj);
		return this;
	}

	@Override
	public SqlSearchable groupBy(String field) {
		super.groupBy(field);
		return this;
	}

	@Override
	public SqlSearchable ascSort(String field) {
		super.ascSort(field);
		return this;
	}

	@Override
	public SqlSearchable descSort(String field) {
		super.descSort(field);
		return this;
	}

	@Override
	public SqlSearchable select(String field) {
		super.select(field);
		return this;
	}

	@Override
	public SqlSearchable addJoinTable(JoinTableCondition joinTable) {
		super.addJoinTable(joinTable);
		return this;
	}

	@Override
	public SearchFilter addCondition(String field, Object obj, String type, SearchOperator searchOperator) {
		return super.addCondition(field, obj, type, searchOperator);
	}

	@Override
	public void setPage(Page page) {
		super.setPage(page);
	}

	public void addJoinTable(SqlJoinTable joinTable) {
		super.addJoinTable(joinTable);
	}
}
